package com.yuw.db;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.junit.jupiter.api.Test;

import com.yuw.bean.UserInfoBean;
import com.yuw.utils.EasyFactory;

public class TEstDriver {

	@Test
	public void testDBUtilsInsert() {

		// 查询sql语句
		String strSql = "insert into  tuserInfo(user_name,user_psw)  values(?, ?)";
		// 执行insert操作，获取查询结果集（List+Bean）
		int i = EasyFactory.getNewInstance(DBProvider.class).update(strSql,
				new Object[] {"user02","user02"} );
		if(i == 1) {
			System.out.println("新增数据完成");
		}
		else {
			System.out.println("新增失败");
		}
	}
	@Test
	public void testDBUtils() {

		// 查询sql语句
		String strSql = "select * from tuserinfo";
		// 执行查询，获取查询结果集（List+Bean）
		List<UserInfoBean> lst = EasyFactory.getNewInstance(DBProvider.class).query(strSql,
				new BeanListHandler<UserInfoBean>(UserInfoBean.class));

		// 遍历解析结果
		// 遍历行，list中的一个map就是一行数据
		for (UserInfoBean en : lst) {
			// 打印每一行的实体类的信息
			System.out.println(en.toString());
		}
		System.out.println("==============================");

		// 执行查询，获取查询结果集（List+Map）
		List<Map<String, Object>> lst2 = EasyFactory.getNewInstance(DBProvider.class).query(strSql,
				new MapListHandler());

		// 遍历行，list中的一个map就是一行数据
		for (Map<String, Object> map : lst2) {
			// 遍历列，map中的一个键值对就是一列的值
			Set<String> keys = map.keySet();
			// 通过keyset遍历map的键值对
			for (String key : keys) {
				System.out.print("  " + map.get(key));
			}
			// 换行
			System.out.println();
		}
		System.out.println("==============================");

	}
}
